home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.mactech.com 2010
/
ftp.mactech.com.tar
/
ftp.mactech.com
/
machack
/
Hacks97
/
WarriorsProgress.sit
/
Warrior’s Progress
/
source code
/
Source
/
Libraries
/
Views
/
Sizeable.cp
< prev
next >
Wrap
Text File
|
1997-06-28
|
2KB
|
109 lines
// Sizeable.cp
#ifndef Sizeable_h
#include "Sizeable.h"
#endif
#ifndef MinMax_h
#include "MinMax.h"
#endif
#ifndef Assert_h
#include "Assert.h"
#endif
const Sizeable Sizeable::empty;
uint16 Sizeable::MinimumWidth() const
{
return 0;
}
uint16 Sizeable::MinimumHeight() const
{
return 0;
}
PointObject Sizeable::MinimumSize() const
{
uint16 width = MinimumWidth();
uint16 height = MinimumHeight();
Assert( width <= maxint16 );
Assert( height <= maxint16 );
return PointObject( width, height );
}
uint16 Sizeable::MaximumWidth() const
{
return maxuint16;
}
uint16 Sizeable::MaximumHeight() const
{
return maxuint16;
}
PointObject Sizeable::MaximumSize() const
{
return PointObject( Min( MaximumWidth(), uint16(maxint16) ),
Min( MaximumHeight(), uint16(maxint16) ) );
}
uint16 Sizeable::ReasonableWidth() const
{
return MinimumWidth();
}
uint16 Sizeable::ReasonableHeight() const
{
return MinimumHeight();
}
PointObject Sizeable::ReasonableSize() const
{
uint16 width = ReasonableWidth();
uint16 height = ReasonableHeight();
Assert( width <= maxint16 );
Assert( height <= maxint16 );
return PointObject( width, height );
}
uint16 Sizeable::BestWidth() const
{
return MaximumWidth();
}
uint16 Sizeable::BestHeight() const
{
return MaximumHeight();
}
PointObject Sizeable::BestSize() const
{
return PointObject( Min( BestWidth(), uint16(maxint16) ),
Min( BestHeight(), uint16(maxint16) ) );
}
uint16 Sizeable::BestWidth( uint16 bound ) const
{
return Min( BestWidth(), bound );
}
uint16 Sizeable::BestHeight( uint16 bound ) const
{
return Min( BestHeight(), bound );
}
PointObject Sizeable::BestSize( PointObject bound ) const
{
uint16 width = BestWidth( bound.h );
uint16 height = BestHeight( bound.v );
Assert( width <= bound.h );
Assert( height <= bound.v );
return PointObject( width, height );
}